home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 076-100 / scopedisk89 / typetut / ck.bas < prev    next >
BASIC Source File  |  1995-03-19  |  14KB  |  354 lines

  1. 1 REM COMPUTER KEYBOARDING PROGRAM -- DICTATION DISC COMPANY 2/83
  2. 2 REM COURSE DEVELOPED BY FRANK DONNELY
  3. 3 REM MODIFIED FOR COMPUTER BY JOHN VISAGGI
  4. 4 REM PROGRAMMED BY LOUIS SOLOMON
  5. 5 REM Adapted to AmigaBasic by Bart Westra 1989 (search for 'AAA')
  6. 9  WIDTH 255            'SETS INFINITE WIDTH - NO FORMFEEDS
  7. 10 GOSUB 50             'CALL INTIALIZATION
  8. 20 GOTO 1000            'START PROGRAM
  9. 50 REM **** INITIALIZATION ROUTINE ****
  10. 51 DIM T$(10,80),LASTCOL%(25),ROW$(25),REPS%(100),TI%(100)
  11. 52 DIM STARTL%(100),STARTD%(100),ROWLINE%(100),TYPE$(100),RE%(100)
  12. 60 REM **** SCREEN CODE INITS
  13. 65 REV$=CHR$(20):HOME$=CHR$(2):FF$=CHR$(12)    'AAA deleted CLS$=CHR$(4)
  14. 66 SH=23:SW=79                  'SCREEN HEIGHT AND WIDTH
  15. 68 FOR X=1 TO 38:DILINE$=DILINE$+"- ":NEXT X
  16. 70 REM **** TIMING LOOP CONSTANTS
  17. 72 REM MINAMT=4800                  'MINUTE AMOUNT ' AAA - old minamt
  18. 73 MINAMT=60                    'MINUTE AMOUNT IN SECONDS 'AAA - for timer
  19. 74 TSAMT=MINAMT/2               '30 SECOND AMOUNT
  20. 76 TCONSTANT=1/MINAMT           'TIME CONSTANT
  21. 78 RETTIME=3                    'TIME FOR RETURN KEY
  22. 80 BSTIME=3                     'TIME FOR BACKSPACE KEY 
  23. 82 BCTIME=3                     'TIME FOR BAD CHARACTER
  24. 84 ADDTIME=8.3                  'TIME FOR CORRECT CHARACTER
  25. 90 RETURN
  26. 100 REM **** CURSOR POSITIONING ROUTINE -- PASS R & C AS ROW/COLUMN
  27. 102 IF INT(R)<>R OR INT(C)<>C OR R>SH OR C>SW THEN RETURN
  28. 104 LOCATE R+1,C+1     'AAA - replaced ANSI seq chr$(27+128;C+128;R+128)
  29. 108 RETURN
  30. 120 REM **** PLACE CURSOR AT PARTICULAR ENTRY POSITION
  31. 121 REM PASS STARTING ROW,NUMBER OF ROWS IN DRILL,ROW AND COLUMN
  32. 122 R=STARTROW+NOROWS+X+1:C=Y:GOSUB 100
  33. 128 RETURN
  34. 130 REM **** BRING TEXT IN FROM LESSON FILE
  35. 131 REM NOTE THAT OFFSET OF 1 TO COMPENSATE FOR SPACE BETWEEN LESSONS
  36. 132 NOROWS=STARTL%(LES+1)-STARTL%(LES)-1 'NUMBER OF LINES IN LESSON
  37. 134 COUNTER=0                                   
  38. 140 FOR X=STARTL%(LES)+1 TO STARTL%(LES+1)-1
  39. 141       COUNTER=COUNTER+1
  40. 142       ROW$(COUNTER)=""
  41. 143       GET #1,X
  42. 146       ROW$(COUNTER)=R$                      
  43. 147 REM PRINT COUNTER,ROW$(COUNTER)
  44. 148 NEXT X
  45. 149 RETURN
  46. 150 REM **** BRING TEXT IN FROM DRILLS
  47. 151 REM NOTE THAT NOROWS AND STARTLES TAKE INTO ACCOUNT THE $$$$
  48. 152 NOROWS=STARTD%(LES+1)-STARTD%(LES)-1:COUNTER=0
  49. 153 IF NOROWS<=0 THEN NOROWS=STARTD%(LES+2)-STARTD%(LES)-1
  50. 154 IF NOROWS<=0 THEN NOROWS=STARTD%(LES+3)-STARTD%(LES)-1
  51. 155 FOR X=STARTD%(LES)+1 TO STARTD%(LES)+NOROWS
  52. 156       COUNTER=COUNTER+1
  53. 158       ROW$(COUNTER)=""
  54. 162       GET #2,X
  55. 163       ROW$(COUNTER)=D$
  56. 165 LASTCOL%(COUNTER)=INSTR(ROW$(COUNTER),">")-1
  57. 166 NEXT X
  58. 167 RETURN
  59. 210 REM **** PRINT TEXT IN PROPER POSITION
  60. 211 FOR X=1 TO NOROWS                           
  61. 212 R=STARTROW+X-1:C=1:GOSUB 100                
  62. 213 LC=INSTR(ROW$(X),">")-1
  63. 216 IF LC<1 THEN LC=0                           
  64. 217 PRINT LEFT$(ROW$(X),LC)                     
  65. 218 NEXT X                                      
  66. 219 RETURN
  67. 220 REM **** WAIT FOR PARTICULAR CHARACTER  NON-TIMED
  68. 222 A$=INKEY$:IF LEN(A$)=0 THEN 222             
  69. 224 IF ASC(A$)=8 THEN BACKSP=1
  70. 225 IF ASC(A$)=13 THEN RET=1
  71. 226 IF ASC(A$)=27 THEN ESC=1
  72. 229 RETURN
  73. 300 REM **** CHARACTER ENTRY TIMED ****
  74. 301 GOTO 400    'AAA - USE TIMER FUNCTION
  75. 314 A$=INKEY$                                   
  76. 318 IF START=1 THEN AAATIME=AAATIME+1                                 
  77. 320 IF AAATIME>TIMELIMIT THEN OVER=1:RETURN
  78. 324 IF LEN(A$)=0 THEN 314                       
  79. 326 CHARCOUNT=CHARCOUNT+1                       
  80. 328 A=ASC(A$)                                   
  81. 332 IF A=13 THEN RET=1:AAATIME=AAATIME+RETTIME:RETURN    
  82. 334 IF A=8 THEN BACKSP=1:AAATIME=AAATIME+BSTIME:RETURN   
  83. 335 IF A=27 THEN ESC=1:AAATIME=AAATIME+1:RETURN
  84. 336 IF A<32 OR A>126 THEN AAATIME=AAATIME+BCTIME:GOTO 314
  85. 340 IF START=0 THEN START=1:AAATIME=0               
  86. 344 IF START=1 THEN AAATIME=AAATIME+ADDTIME:NRM=1
  87. 352 RETURN                                      
  88. 400 REM AAA - **** CHARACTER ENTRY TIMED FOR AMIGA (USE TIMER FUNCION ) ****
  89. 414 A$=INKEY$                                   
  90. 418 IF START=1 THEN AAATIME=TIMER-STARTTIME
  91. 419 IF AAATIME<0 THEN AAATIME=AAATIME+86400 'AAA - Our typist works late!
  92. 420 IF AAATIME>TIMELIMIT THEN OVER=1:RETURN
  93. 424 IF LEN(A$)=0 THEN 414                       
  94. 426 CHARCOUNT=CHARCOUNT+1                       
  95. 428 A=ASC(A$)                                   
  96. 432 IF A=13 THEN RET=1:RETURN    
  97. 434 IF A=8 THEN BACKSP=1:RETURN   
  98. 435 IF A=27 THEN ESC=1:RETURN
  99. 436 IF A<32 OR A>126 THEN 414
  100. 440 IF START=0 THEN START=1:AAATIME=0:STARTTIME=TIMER               
  101. 444 NRM=1
  102. 452 RETURN                                      
  103. 480 REM *** PRINT ANY TEXT ON SCREEN
  104. 482 GOSUB 130:CLS:GOSUB 210    'AAA - replaced print cls$
  105. 486 RETURN
  106. 600 REM ****** TIMED TEXT ROUTINE MAIN CALLING ROUTINE
  107. 604 STARTROW=0:GOSUB 480                'PRINT LESSON
  108. 606 IF STARTD%(LES)=0 THEN 699          'RETURN BACK - NO DRILL
  109. 618 TT=1:GOSUB 970                      'PROMPT TO START DRILL
  110. 619 IF ESC=1 THEN ESC=0:GOTO 660        'AAA - Allow escape from lesson
  111. 620 STARTROW=5                          'START OF DRILL IS 5
  112. 624 REM RUN TIMED TEXT
  113. 636 F$=STR$(LES)
  114. 640 GOSUB 150                           'BRING TEXT IN FROM DRILL
  115. 641 FOR COUNTER=1 TO REPS%(LES)         'LOOP FOR NO. OF REPS
  116. 642 AAATIME=0:CHARCOUNT=0:OVER=0:AAAOFF=0     'INTIALIZE VALUES
  117. 643 IF TI%(LES)=1 THEN TIMELIMIT=TSAMT ELSE TIMELIMIT=MINAMT
  118. 644 GOSUB 980                           'TITLE OF DRILL
  119. 648 GOSUB 210                           'PRINT DRILL
  120. 650 SR=STARTROW:NR=NOROWS               'SAVE CONSTANTS
  121. 652 GOSUB 670                           'ACTUAL TIMING
  122. 656 GOSUB 860                           'TIMING RESULTS ROUTINE
  123. 657 IF ESC=1 THEN ESC=0:GOTO 660        'AAA - Allow escape from lesson rep.
  124. 659 NEXT COUNTER                        'END LOOP REPS%
  125. 660 RETURN
  126. 670 REM ****** TIMED ENTRY ROUTINE
  127. 672 Y=1:START=0:X=0:BACKSP=0:ESC=0:RET=0'INITIALIZE VALUES
  128. 674 A$=INKEY$:A$=INKEY$                 'FLUSH KEYBOARD BUFFER
  129. 678 IF Y<=1 THEN Y=1                    'DONT PASS LEFT EDGE
  130. 679 IF Y=SW THEN X=X+1:Y=0              'DONT PASS RIGHT EDGE
  131. 680 IF X>=SH THEN X=SH                  'DONT PASS BOTTOM
  132. 681 GOSUB 120                           'PLACE CURSOR AT POSTION
  133. 682 GOSUB 300                           'GET IN CHARACTER TIMED
  134. 684 IF RET=1 THEN X=X+1:Y=1             'PROCESS RETURN
  135. 685 IF BACKSP=1 THEN Y=Y-1              'PROCESS BACKSPACE
  136. 687 IF OVER=1 THEN OVER=0:RETURN        'PROCESS TIMEOUT
  137. 688 IF ESC=1 THEN ESC=0:RETURN          'PROCESS ESCAPE 
  138. 689 IF NRM=1 THEN PRINT A$;:Y=Y+1       'NORMAL CHARACTER
  139. 690 RET=0:BACKSP=0:NRM=0                'INITIALIZE VALUES
  140. 692 GOTO 678                            'LOOP BACK NEXT CHARACTER
  141. 700 REM ***** FREE FORMED TEXT ENTRY MAIN CALLING ROUTINE
  142. 705 STARTROW=0:GOSUB 480         'PRINT LESSONS
  143. 710 STARTROW=NOROWS+1            'CALCULATE START OF DRILL PLACEMENT
  144. 724 GOSUB 150:GOSUB 210          'GET AND PRINT DRILL
  145. 727 FOR COUNTER=1 TO REPS%(LES)  'LOOP FOR NUMBER OF REPS
  146. 730 GOSUB 740                    'FREE FORMED TEXT ENTRY
  147. 732 NEXT COUNTER                 'END LOOP
  148. 738 RETURN                       'RETURN
  149. 740 REM ****** FREE FORMED TEXT ENTRY ROUTINE
  150. 742 Y=1:START=0:X=0:BACKSP=0:ESC=0:RET=0'INITIALIZE VALUES
  151. 744 A$=INKEY$:A$=INKEY$          'FLUSH KEYBOARD BUFFER
  152. 748 IF Y<=1 THEN Y=1
  153. 749   IF Y=SW THEN X=X+1:Y=0
  154. 750   IF X>=SH THEN X=SH
  155. 751   GOSUB 120 'PLACE CURSOR AT POSTION
  156. 752   GOSUB 220 'GET IN CHARACTER
  157. 754   IF RET=1 THEN RET=0:X=X+1:Y=1:GOTO 750
  158. 757   IF BACKSP=1 THEN BACKSP=0:Y=Y-1:GOTO 748
  159. 758   IF ESC=1 THEN ESC=0:RETURN
  160. 759   PRINT A$;:Y=Y+1::GOTO 748
  161. 800 REM ****** MENU PROGRAM
  162. 810 OPEN "I",#3,"MENU"
  163. 812 CLS     'AAA - replaced print cls$
  164. 814 IF EOF(3) THEN 820                          
  165. 815 LINE INPUT #3,A$:PRINT A$:GOTO 814          
  166. 820 CLOSE #3
  167. 822 INPUT "Please enter lesson to start from (then press return) ",ST
  168. 823 IF ST=99 THEN 3000
  169. 824 IF ST=0 THEN RESET:SYSTEM
  170. 825 IF ST>100 OR ST<1 OR ST<>INT(ST) THEN 800
  171. 826 LES=ST
  172. 829 RETURN
  173. 830 REM MAIN TITLE
  174. 831 OPEN "I",#3,"TITLE"
  175. 832 CLS     'AAA - replaced print cls$
  176. 833 IF EOF(3) THEN 835                          
  177. 834 LINE INPUT #3,A$:PRINT A$:GOTO 833          
  178. 835 CLOSE #3
  179. 836 S$="Press any key to display menu":PRINT TAB(20);S$
  180. 837 B$=INPUT$(1)
  181. 838 GOSUB 940
  182. 840 RETURN
  183. 850 REM DISPLAY ONLY TEXT  TYPE
  184. 855 STARTROW=0:GOSUB 480
  185. 856 STARTROW=NOROWS+1:GOSUB 740                 'GET ENTRY
  186. 859 RETURN
  187. 860 REM *** TIMING RESULTS SUBROUTINE
  188. 861 FOR X=1 TO NR                               'ERASE TIMING PARAGRAPH
  189. 862 R=SR+X-1:C=1:GOSUB 100
  190. 863 PRINT STRING$(78," ");
  191. 864 NEXT X
  192. 876 WORDS=INT(CHARCOUNT/5+.5)
  193. 877 IF AAATIME=0 THEN AAATIME=0.001 'AAA - prevent divide by zero in 880
  194. 878 MINUTES=AAATIME*TCONSTANT
  195. 880 WPM=INT(WORDS/MINUTES+.5)
  196. 881 R=2:C=60:GOSUB 100
  197. 882 PRINT "Timing ";COUNTER;" of ";REPS%(LES)
  198. 883 R=SR:C=0:GOSUB 100             'PLACE CURSOR
  199. 884 PRINT "You just typed ";WORDS;"words at ";WPM;" words per minute"
  200. 886 IF RE%(LES)>0 AND COUNTER<REPS%(LES) THEN GOSUB 900
  201. 887 IF COUNTER<REPS%(LES) THEN GOSUB 890 '15 SECOND PAUSE
  202. 888 RETURN
  203. 890 REM 15 SECOND PAUSE BETWEEN TIMINGS
  204. 891 R=22:C=1:GOSUB 100
  205. 892 PRINT "GET READY FOR NEXT TIMING...."; ' AAA - added ; to this line
  206. 893 AAATIME=0:START=1:STARTTIME=TIMER      ' AAA - added starttime
  207. 894 TIMELIMIT=TSAMT/2:GOSUB 300
  208. 895 RETURN
  209. 900 REM REMARK COMMENTS
  210. 901 PRINT
  211. 902 P=COUNTER+RE%(LES)-1+AAAOFF
  212. 904 GET #2,P
  213. 906 L=INSTR(D$,">")-1
  214. 908 IF INSTR(D$,"\")>0 THEN NL=1 ELSE NL=0
  215. 910 IF NL=1 THEN PRINT LEFT$(D$,L-1) ELSE PRINT LEFT$(D$,L)
  216. 920 IF NL=1 THEN GET #2,P+1:L=INSTR(D$,">")-1
  217. 922 IF NL=1 THEN PRINT LEFT$(D$,L-1):AAAOFF=AAAOFF+1
  218. 925 RETURN
  219. 940 REM MESSAGE
  220. 942 CLS     'AAA - replaced print cls$;
  221. 944 R=10:C=20:GOSUB 100                         
  222. 946 PRINT "Please wait one moment ..."
  223. 948 RETURN
  224. 950 REM *** WAIT FOR RETURN PROMPT AT BOTTOM
  225. 952 R=22:C=1:GOSUB 100                          
  226. 953 REM AAA - added ; to next line
  227. 954 PRINT "Press [Return] to Next, [R] to Repeat, [B] to Go Back, [M] to Menu";
  228. 956 R=22:C=74:GOSUB 100
  229. 957 AAATIME=0:START=0
  230. 958 TIMELIMIT=100000!:GOSUB 300:I$=A$
  231. 960 IF I$=CHR$(13) THEN LES=LES+1:GOTO 968      
  232. 962 IF I$="B" OR I$="b" THEN LES=LES-1:GOTO 968 
  233. 964 IF I$="M" OR I$="m" THEN LES=0:GOTO 968
  234. 965 IF I$="R" OR I$="r" THEN LES=LES:GOTO 968   
  235. 966 GOTO 952                                    
  236. 968 RETURN
  237. 970 REM IN BETWEEN TIMINGS PROMPT
  238. 971 R=22:C=1:GOSUB 100                          
  239. 972 M$="Press [Return] to view timing ... Timing starts when first key pressed"
  240. 974 PRINT M$;:R=22:C=70:GOSUB 100
  241. 975 AAATIME=0:START=0
  242. 976 TIMELIMIT=100000!:GOSUB 300:I$=A$
  243. 977 IF ESC=1 THEN R=22:C=1:GOSUB 100:PRINT SPACE$(71);:RETURN 'AAA - line added
  244. 978 IF I$=CHR$(13) THEN RETURN ELSE 976  'AAA - this was line 977
  245. 980 REM **** TITLE ROUTINE
  246. 982 CLS    'AAA - replaced print cls$;                                 
  247. 984 S$="DICTATION DISC COMPANY":GOSUB 990       
  248. 985 S$="COMPUTER KEYBOARDING -- LESSON "+F$:GOSUB 990
  249. 986 PRINT DILINE$
  250. 987 RETURN
  251. 990 REM **** CENTER ON PAGE ROUTINE
  252. 992 T=INT(40-LEN(S$)/2)
  253. 993 PRINT TAB(T);S$
  254. 994 RETURN
  255. 1000 REM MAIN BODY OF PROGRAM
  256. 1001 OPEN "R",#1,"LESRAN",80:FIELD #1,80 AS R$
  257. 1002 OPEN "R",#2,"DRILRAN",80:FIELD #2,80 AS D$
  258. 1005 GOSUB 830                                  
  259. 1010 FRAMES=84
  260. 1012 GOSUB 2000 'STARTING LINE FOR LESSON
  261. 1014 GOSUB 2100 'STARTING LINE FOR DRILLS
  262. 1016 GOSUB 2200 'COMPUTE STARTING LINE FOR EXACTS
  263. 1018 GOSUB 2400 'LESSON INFORMATION
  264. 1020 GOSUB 800                                  
  265. 1040 REM START OF TYPE CALLING PROGRAMS
  266. 1041 IF TYPE$(LES)="T" THEN GOSUB 600
  267. 1042 IF TYPE$(LES)="F" THEN GOSUB 700
  268. 1043 IF TYPE$(LES)="D" THEN GOSUB 850
  269. 1045 GOSUB 950'CALL MENU CHANGE LES
  270. 1050 GOSUB 940                                  
  271. 1055 A=FRE("A")
  272. 1060 IF LES=0 THEN 1020                         
  273. 1070 GOTO 1040
  274. 2000 REM GET STARTING LINE FOR LESSONS ARRAY
  275. 2010 OPEN "I",#3,"LESST"
  276. 2020 FOR X=1 TO FRAMES+1
  277. 2030 INPUT #3,LES,START                         
  278. 2040 STARTL%(X)=START                            
  279. 2050 NEXT X                                     
  280. 2055 CLOSE #3
  281. 2060 RETURN                                     
  282. 2100 REM GET STARTING LINE FOR DRILLS  ARRAY
  283. 2110 OPEN "I",#3,"DRIST"
  284. 2130 IF EOF(3) THEN 2160                        
  285. 2135 INPUT #3,LES,START                         
  286. 2140 STARTD%(LES)=START                          
  287. 2150 GOTO 2130                                  
  288. 2160 CLOSE #3:RETURN
  289. 2200 REM COMPUTE ROWLINE% (START ROW OF DRILLS) ARRAY
  290. 2210 FOR X=1 TO FRAMES
  291. 2220 N=STARTL%(X+1)-STARTL%(X)-1                  
  292. 2230 ROWLINE%(X)=N+1                             
  293. 2240 NEXT X
  294. 2250 RETURN
  295. 2400 REM GET LESSON INFORMATION
  296. 2410 X=0
  297. 2415 OPEN "I",#3,"LESINF"
  298. 2420 IF EOF(3) THEN 2460
  299. 2425 X=X+1
  300. 2430 INPUT #3,A$
  301. 2434 TYPE$(X)=LEFT$(A$,1)
  302. 2435 REPS%(X)=VAL(MID$(A$,15,5)):IF REPS%(X)=0 THEN REPS%(X)=1
  303. 2436 TI%(X)=VAL(MID$(A$,28,6))
  304. 2438 Y=VAL(MID$(A$,44,6))
  305. 2439 IF Y=0 THEN RE%(X)=0 ELSE RE%(X)=Y+STARTD%(FRAMES+1)-2
  306. 2440 GOTO 2420
  307. 2460 CLOSE #3
  308. 2470 RETURN
  309. 3000 REM PRINT OUT LESSONS
  310. 3005 INPUT "START AT WHAT LESSON";S:IF S=0 THEN S=1
  311. 3006 INPUT "END AT WHAT LESSON";E:IF E=0 THEN E=FRAMES
  312. 3010 FOR LES=S TO E
  313. 3020 P=1:GOSUB 130:GOSUB 3200
  314. 3030 IF TYPE$(LES)<>"D" THEN P=0:GOSUB 150:GOSUB 3200
  315. 3031 GOSUB 3400
  316. 3035 IF RE%(LES)>0 THEN GOSUB 3300'PRINT REMARKS
  317. 3040 NEXT LES
  318. 3050 END
  319. 3200 REM PRINT TO LINE PRINTER
  320. 3210 IF P=1 THEN LPRINT CHR$(12); ELSE LPRINT:LPRINT:LPRINT'FORM FEED
  321. 3211 FOR X=1 TO NOROWS
  322. 3213 LC=INSTR(ROW$(X),">")-1
  323. 3216 IF LC<1 THEN LC=0
  324. 3217 LPRINT LEFT$(ROW$(X),LC)
  325. 3218 NEXT X
  326. 3219 RETURN
  327. 3300 REM PRINT REMARKS OUT
  328. 3310 LPRINT:LPRINT "===REMARKS===":AAAOFF=0
  329. 3315 FOR COUNTER=1 TO REPS%(LES)-1
  330. 3316 LPRINT COUNTER;"--  ";
  331. 3318 GOSUB 3900
  332. 3320 NEXT COUNTER
  333. 3330 RETURN
  334. 3400 REM PRINT OUT LESSON INFO
  335. 3401 LPRINT:LPRINT
  336. 3405 LPRINT "===LESSON INFORMATION==="
  337. 3410 IF TYPE$(LES)="F" THEN LPRINT "Normal non-timed drill"
  338. 3411 IF TYPE$(LES)="T" THEN LPRINT "Timed typing"
  339. 3412 IF TYPE$(LES)="D" THEN LPRINT "Display only text"
  340. 3415 LPRINT REPS%(LES);" Repetition)"
  341. 3416 IF TYPE$(LES)="T" AND TI%(LES)=1 THEN LPRINT "30 seconds each"
  342. 3417 IF TYPE$(LES)="T" AND TI%(LES)=2 THEN LPRINT "One minute each"
  343. 3418 RETURN
  344. 3900 REM REMARK COMMENTS
  345. 3901 PRINT
  346. 3902 P=COUNTER+RE%(LES)-1+AAAOFF
  347. 3904 GET #2,P
  348. 3906 L=INSTR(D$,">")-1
  349. 3908 IF INSTR(D$,"\")>0 THEN NL=1 ELSE NL=0
  350. 3910 IF NL=1 THEN LPRINT LEFT$(D$,L-1) ELSE LPRINT LEFT$(D$,L)
  351. 3920 IF NL=1 THEN GET #2,P+1:L=INSTR(D$,">")-1
  352. 3922 IF NL=1 THEN LPRINT "       ";LEFT$(D$,L-1):AAAOFF=AAAOFF+1
  353. 3925 RETURN
  354.